# = 是赋值运算符, 作用就是将等号右侧的数据赋值给等号左侧的变量
name = '小明'
print(name)  # 小明
nick = name
print(nick)
# 等号左侧只能是变量, 等号右侧可以是数据或者已经被定义的变量
# '小芳' = name
# 12 = age
print("-----------------------------------")

# 1. 可以对于一个变量进行多次赋值,但是我们变量中仅保存最后一次赋值的数据
name = '大黄'
print(name)  # 大黄
print(nick)

print("-----------------------------------")

# 2. 可以使用连等一次性给多个变量赋值
# 但是必须给多个变量赋相同的值,也就是前边有多个变量,最后只能有一个值
a = b = c = 1
print(a, b, c)  # 1 1 1
print("-----------------------------------")

# 3. 可以使用逗号分隔一次性给多个变量赋值
# 但是要保证等号左侧的变量数量和等号右侧的变量数量保持一致,不能多也不能少
num1, num2 = 1, 2
print(num1, num2)  # 1 2

print("-----------------------------------")
# 4. 变量必须先定义后调用,否则报NameError的错误
# NameError: name 'school' is not defined
# print(school)
# school = '传智'

print("-----------------------------------")
# 5. 复合赋值运算符
# 其实复合赋值运算符就是将算数运算符和复制运算符连接在一起, 当进行赋值之前,需要先进行算数运算
# += -= *= /= %= //= **=

var1 = 12
# var1 += 3 就等价与 var1 = var1 + 3
var1 += 3
print(var1)  # 15

var2 = 3
# var2 *= 2 等价于 var2 = var2 * 2
var2 *= 2
print(var2)  # 6

# 注意: 符合赋值运算符,等号左侧必须是已经被定义的变量,右侧是已经被定义的变量或值
# 例如: var1 += 3 就等价与 var1 = var1 + 3 如果此时 var1未被定义,则先计算var1 + 3 时 var1未被定义,直接报错(变量必须先定义后调用)
